from django.conf.urls.defaults import *
from django.contrib.auth import authenticate, login, logout
from django.contrib import admin
from django.conf import settings
from main import views, rest

admin.autodiscover()

urlpatterns = patterns('',
##############################################################################
#Administration views
##############################################################################
    (r'^admin/?(.*)', admin.site.root),
    (r'^captcha/', include('captcha.urls')),
    (r'^login/?', views.do_login),
    (r'^logout/?', views.do_logout),
##############################################################################
#AJAX views
##############################################################################
    (r'^ajax/news/(.*)', views.ajax_serve_news),
    (r'^ajax/stats/(.*)', views.ajax_serve_stats),
    (r'^ajax/nodes/(.*)', views.ajax_serve_nodes),
    (r'^ajax/results/(.*)', views.ajax_serve_results),
    (r'^ajax/datasets/(.*)', views.ajax_serve_datasets),
    (r'^ajax/banner/stats', views.ajax_update_banner_stats),
    (r'^ajax/banner/flops', views.ajax_update_banner_flops),
    (r'^ajax/page/(.*)', views.ajax_serve_static_page),

##############################################################################
#RESTful views
##############################################################################
    (r'^rest/register', rest.rest_register),
    (r'^rest/unit', rest.rest_unit),
    (r'^rest/checkout/(.*)/(.*)/(.*)',rest.rest_checkout_file),

##############################################################################
#Static views
##############################################################################
    (r'^static/(?P<path>.*)$','django.views.static.serve', {'document_root': settings.ROOT+'static/'}),
##############################################################################
#Page views
##############################################################################
    (r'^$', views.serve_home),
    (r'^create/profile$', views.serve_create_profile),
    (r'^create/dataset$', views.serve_create_dataset),
    (r'^create/ticket$', views.serve_create_ticket),
    (r'^view/nodes$', views.serve_view_nodes),
    (r'^view/tasks$', views.serve_view_tasks),
    (r'^view/users$', views.serve_view_users),
    (r'^view/result/(.*)$', views.serve_view_result),
    (r'^delete/dataset/(.*)$', views.serve_delete_dataset),
    (r'^page/(.*)$', views.serve_static_page),

##############################################################################
# Traps & stubs
##############################################################################
    (r'^.*$', views.serve_404),
)